#ifndef MAPWINDOW_H
#define MAPWINDOW_H

#include <QMainWindow>
#include "common.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QHostInfo>
#include "mapdragevent.h"

namespace Ui {
class MapWindow;
}

class MapWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MapWindow(QWidget *parent = nullptr);
    ~MapWindow();
    void initMap();
    void getPublicIPAddress();
    void getPublicLngLat();
    void init();
    void updateMapPosition(const QPoint &delta);
    void mousePressEvent(QMouseEvent *event) override; // 鼠标按下事件处理

private slots:
    void on_btn_back_clicked();

    void showMap(QNetworkReply *reply);

    void on_btn_big_clicked();

    void on_btn_small_clicked();

private:
    Ui::MapWindow *ui;
    QNetworkAccessManager *manager;
    int zoom=11;
    QString lng="104.064328";
    QString lat="30.573457";
    QString ip;
    MapDragEvent *mapDragEvent;

    // 存储拖动过程中的经纬度信息
    double startLng;// 开始拖动时的经度
    double startLat;// 开始拖动时的纬度
    double endLng;// 结束拖动时的经度
    double endLat;// 结束拖动时的纬度
};


#endif // MAPWINDOW_H
